package cl.zeke.cursos.jsf2spring3jpa2.vista.managedbeans.ejercicio4;

import cl.zeke.cursos.jsf2spring3jpa2.negocio.entities.Persona;
import cl.zeke.cursos.jsf2spring3jpa2.negocio.exceptions.LogicaNegocioException;
import cl.zeke.cursos.jsf2spring3jpa2.negocio.services.Ejercicio4Service;
import cl.zeke.cursos.jsf2spring3jpa2.util.ConstantesUtil;
import cl.zeke.java.commons.jsf2.Jsf2Util;
import java.io.Serializable;
import javax.annotation.PostConstruct;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

@Component
@Scope("view")
public class Ejercicio4Pag1Bean implements Serializable {

    private static Logger log = LoggerFactory.getLogger(Ejercicio4Pag1Bean.class);
    
    @Autowired
    private Ejercicio4Service ejercicio4Service;

    private Persona persona;

    @PostConstruct
    public void iniciar() {
        log.debug("Iniciando Ejercici4Pag1");
        persona = ejercicio4Service.buscarPersonaPorRut(11111111);
    }

    public String guardarPersona() {
        try {
            log.debug("action llamado: guardarPersona");
            ejercicio4Service.guardarPersona(persona);
            Jsf2Util.addInfoMessage("Se Guardo una persona exitosamente");
        } catch (LogicaNegocioException ex) {
            Jsf2Util.addErrorMessage(ex.getMessage());
        } catch (Exception ex) {
            Jsf2Util.addErrorMessage(ConstantesUtil.MSJ_ERROR_INTERNO);
        }
        return null;
    }

    /*getters and setters*/
    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }
}
